/**
 * 系统界面的主区域,是一个tabpanel,可以有多个tab页面，用来放置各个模块。
 */
Ext.define('app.main.region.Center', {
    extend: 'Ext.tab.Panel',
    alias: 'widget.maincenter',

    uses: ['app.main.region.HomePage', 'Ext.ux.TabCloseMenu'],
    closeAction: 'hide',
    autoDestroy: false,
    tabPosition: 'top',

    plugins: [//Ext.create('Ext.ux.TabReorderer'),  //  >>  isSynchronized error
        {
            ptype: 'tabclosemenu',
            closeAllTabsText: '关闭所有',
            closeOthersTabsText: '关闭其他',
            closeTabText: '关闭',

            extraItemsTail: ['-', {
                text: '可关闭',
                itemId: 'canclose',
                checked: true,
                hideOnClick: false,
                handler: function (item) {
                    item.ownerCt.tabPanel.tab.setClosable(item.checked);
                }
            }],
            listeners: {
                beforemenu: function (menu, tabPanel) {
                    menu.tabPanel = tabPanel;
                    if (tabPanel.tab.reorderable) {
                        menu.down('#canclose').setChecked(tabPanel.tab.closable);
                        menu.down('#canclose').enable();
                    } else {
                        menu.down('#canclose').setChecked(false);
                        menu.down('#canclose').disable();
                    }
                }
            }
        }
    ],

    initComponent: function () {
        this.items = [
            {
                title: '工作台',
                items: []
            }
        ];
        this.callParent();
    },
    newTab: function (moduleId, moduleName, text) {
        var tabPanel = this;

        var itemId = "menu" + new Date().getTime();
        var oldel = tabPanel.queryById(itemId);
        if (oldel) {
            tabPanel.setActiveTab(oldel);
            return;
        }

        var cc = Ext.create(moduleName,
        {
            title: text,
            itemId: itemId,
            paramsId: moduleId,
            closable: true
        });
        tabPanel.add(cc);
        tabPanel.setActiveTab(cc);
    }
})